

#include <stdio.h>
#include <iostream>
using namespace std;

class Test{
    public:
    Test(){
        cout << "default constructor" << endl;
    }
    Test( const Test &t ){
        cout << "copy constructor" << endl;
    }

    Test & operator=( const Test & t ){
        cout << "opreator overload" << endl;
        return *this;
    }
};

void test( int a ){
	int *b = &a;
	*b = -12;
}


int main () 
{
    int abc = 100;
    test(abc);
    cout << abc << endl;

    Test t;
    Test b;
    b = t;
    Test c(b);
    Test d = c;
}
